package com.example.project.sort.insertsort;

/**
 * 简单插入排序：将无序子序列找中的一个或几个记录插入到有序子序列中，
 * 从而增加有序子序列的长度。
 *
 */
public class DirectSelectSort {

    /**
     * 把选中的元素排到前面有序队列去中，行程n+1个元素，外面的循环代表要外层要挑选多少个元素。
     * 选中某个元素，把这个元素排到前面已经排序好的位置去，直接选中排序。班级中选个位置给它。
     *
     */
    private static  void test(Integer[] arr){
       for(int i=1;i<arr.length;i++){ //待排序的位置默认是第1位开始，把这个数排到里里层循环有序的队列中区
            //只有前面的元素比后面的元素大才，否则不循环了
           if(arr[i-1]>arr[i]){
               int temp = arr[i];//空出i的位置也可以出说是哨兵
               int k = 0;
               for(k = i-1;k>=0 && arr[k]>temp;k--){
                   arr[k+1]=arr[k];//满足条件的j往后移动，移动之后，默认j会往前面走一位呢,会再空位的前面以为
               }
               arr[k+1]=temp;//所以这里是j+1,是空白的位置呢
           }
       }
    }



    public static void main(String[] args) {

        Integer [] a ={2,1,5,9,3};
        test(a);

        for(int temp :a){
            System.out.print(temp+",");
        }



    }
}
